txt = """
[0:03.440] 開いたページ並ぶ文字
[0:06.395] 展开的页面 排列的文字
[0:06.395] 右から左目でなぞる言葉たちに
[0:12.699] 从右向左眼 描摹着这些言语
[0:12.699] 試されている
[0:16.882] 正在被考验
[0:16.882] 熱を持つ喉の奥
[0:19.939] 发烫的喉咙深处
[0:19.939] 今も僕の背中を叩く問いかけが
[0:25.027] 直到现在仍在敲打着我的背后的质问
[0:25.027] 頭を駆け巡る
[0:29.695] 在我的脑海中盘旋
[0:29.695] 「それでいいなら それでいいけど
[0:36.902] 如果这样就好的话,那就这样吧
[0:36.902] そうじゃないなら 今 覚悟を」
[0:44.214] 如果不是这样的话,现在就做好准备吧
[0:44.214] 聞こえた声は紛れもない
[0:47.173] 听到的声音无可置疑
[0:47.173] いつかの僕の声だ
[0:50.415] 那是我以前的声音
[0:50.415] 誰かの言葉でも
[0:53.782] 即使是别人的话语
[0:53.782] 構わない伝えるんだ
[0:56.908] 那也没关系 去传达吧
[0:56.908] この声に意味をくれたあの人へ
[1:04.058] 给了这个声音意义的那个人
[1:04.058] 誰かの想いも
[1:07.139] 谁的想法
[1:07.139] 連れて行ける待っていて
[1:10.533] 等待着我带去
[1:10.533] この声を想いを僕を信じてよ
[1:28.449] 请相信这个声音,我的想法
[1:28.449] 溢れて止まらない
[1:30.195] 无法停止溢出的
[1:30.195] 感情とは裏腹
[1:31.907] 与此相反的情感
[1:31.907] 乾いてしかたない潤し方も
[1:35.302] 干涸无法得到滋润
[1:35.302] わからないまま
[1:37.024] 我也不知道该如何
[1:37.024] 遠くへ来てしまった
[1:42.148] 已经走到了远方
[1:42.148] 闇の中その声だけが頼り
[1:45.514] 黑暗中,只有那个声音是我的依靠
[1:45.514] いつしか目の前照らした光
[1:48.891] 不知不觉中,照亮我眼前的光芒
[1:48.891] これしか残されちゃいないんだ
[1:55.696] 这已经是我所剩下的全部了
[1:55.696] か弱く頼りないそれでも
[1:58.723] 即使脆弱无助
[1:58.723] 確かな僕の声だ
[2:15.381] 但这确实是我的声音
[2:15.381] 「それでいいなら それでいいけど
[2:22.322] 这样就好吗？虽然这样也可以
[2:22.322] そうじゃないから
[2:25.113] 但并非如此
[2:25.113] ここにいるんでしょう?」
[2:28.300] 因为我就在这里
[2:28.300] 誰かの言葉でも
[2:31.734] 用别人的话语
[2:31.734] 構わない伝えなくちゃ
[2:34.900] 也已经不重要了
[2:34.900] この声に優しく触れたあの人へ
[2:41.967] 用这个声音,给那个温柔触碰我的人
[2:41.967] 誰かの想いも
[2:45.066] 也能带着别人的想法
[2:45.066] 連れて行ける待っていて
[2:48.622] 一起前进,请等待
[2:48.622] この声を想いを僕を
[2:53.666] 这个声音,这些想法,还有我也一起
[2:53.666] 音のない夜を超え
[2:56.975] 穿越无声的夜晚
[2:56.975] 会いに行く待っていて
[3:00.472] 等待着去见你
[3:00.472] この声を想いを僕を信じてよ
[3:12.416] 这个声音 这份思念 以及我
[3:12.416] 信じてよ
[3:25.891] 请相信我
[3:25.891] この声を想いを僕を信じてよ
[3:30.848] 请相信这个声音 这份思念 相信我
"""
from tools.lrc import lrc_split

def tool1(txt):
    head, lis1, invalid = lrc_split(txt.split("\n"))
    times, _ = zip(*lis1)
    times = list(dict.fromkeys(times))
    lis2 = []
    for time in times:
        nl = []

        for t, l in lis1:
            if time == t and [t, l] not in nl:
                nl += [[time, l]]
        if len(nl) == 2:
            lis2 += nl
        else:
            lis2 += nl*2
    li3 = lis2[1:-1]
    pt, pl = "", ""
    # print("head"+"\n".join(head))
    # print(head)
    # print("invalid"+"\n".join(invalid))
    if head:
        out_txt = "\n".join(head)+"\n"
    else:
        out_txt = ""
    for n, (t, l) in enumerate(li3):
        if n % 2 == 0:
            pt, pl = t, l
        else:
            time_str = f"[{pt}]"
            out_txt += time_str+l+"\n" + time_str+pl+"\n"

    if invalid:
        print("\n".join([f"无效行:"] + invalid))
    print(f"转化结果:\n" + out_txt)
    return out_txt, invalid


if __name__ == "__main__":
    # 将时间戳错位的行按照一定规则对齐
    tool1(txt)
